\name{Query}
\alias{Query}
\title{
Query the DatasetVector by setting query conditions
}
\encoding{UTF-8}
\description{
通过设置查询条件对矢量数据集进行查询，该方法默认查询空间信息与属性信息。 
}
\usage{
Query(obj, filter = "", groupby = "", has.geometry = TRUE, 
  order = "", fields = vector(mode = "character", length = 0L))
}
%- maybe also 'usage' for other objects documented here.
\arguments{
  \item{obj}{
  被查询的矢量数据集
}
  \item{filter}{
查询所构建的 SQL 条件语句，即 SQL WHERE clause 语句。
}
  \item{groupby}{
SQL查询分组，通过设定groupby, 可以根据指定的字段进行分组，指定的字段值相同的记录将被放置在一起，例如“Group By FieldSimple”。对于非属性表数据集，只有has.geometry = FALSE 时 groupby 才有效。
}
  \item{has.geometry}{
查询结果是否包含几何对象。 
}
  \item{order}{
对于SQL查询得到的记录集中的各记录，可以根据指 order 语句进行排序，并可以指定为升序排列或是降序排列，其中 asc 表示升序，desc 表示降序。例如“order by SmID desc”。
}
  \item{fields}{
结果字段集合。对于查询结果的记录集中，可以设置其中所包含的字段，如果为空，则查询所有字段。 任何时候都会包含 “SmID” 字段。
}
}
\details{
%%  ~~ If necessary, more details than the description above ~~
}
\value{
如果成功，返回一个list，list第一个项为几何对象组成的list，list的第二项为一个data.frame对象，data.frame每项为几何对象的属性字段值。
如果失败，返回NULL。
}
\references{
%% ~put references to the literature/web site here ~
}
\author{
%%  ~~who you are~~
}
\note{
%%  ~~further notes~~
}

%% ~Make other sections like Warning with \section{Warning }{....} ~

\seealso{
%% ~~objects to See Also as \code{\link{help}}, ~~~
}
\examples{

server <- system.file("/sampledata/ChangChun.udb", package="RSuperMap")
ds <- OpenDatasource(server, alias = "test", engine = "udb")

line.dt <- GetDataset(ds, "BusLine")

res1 <- Query(line.dt, filter="SmID > 10  and SmID < 20", 
 has.geometry = TRUE, order="Order By smid desc")

res2 <- Query(line.dt, filter="SmID > 10  and SmID < 20",
  has.geometry = FALSE, order="Order By smid asc")

res3 <- Query(line.dt, groupby = "Group By SmUserID",
  has.geometry = FALSE, fields = c("SmUserID"))

ds <- CloseDatasource(ds)
}
% Add one or more standard keywords, see file 'KEYWORDS' in the
% R documentation directory.
\keyword{supermap}
\keyword{query}
